package com.whfc.ms.api.base.service;

import com.whfc.common.result.ListData;
import com.whfc.emp.dto.AppBoardEmpOverviewDTO;
import com.whfc.emp.dto.EmpDataDTO;
import com.whfc.emp.dto.train.AppBoardEmpGroupCountDTO;
import com.whfc.entity.dto.board.BoardProjectDataDTO;
import com.whfc.fuum.dto.AppProjectDetailDTO;
import com.whfc.mach.dto.AppBoardMachOverviewDTO;

import java.util.Date;
import java.util.List;

/**
 * 大屏展示
 *
 * @author guodong_sun
 * @Description:
 * @date 2019年9月10日
 */
public interface AppBoardService {

    /**
     * 大屏展示-项目概况
     *
     * @param deptId
     * @return
     */
    AppProjectDetailDTO projectOverview(Integer deptId);

    /**
     * 大屏展示-项目数据
     *
     * @param deptId
     * @return
     */
    BoardProjectDataDTO getProjectLatestData(Integer deptId);


    /**
     * 大屏展示-设备运行数据
     *
     * @param deptId
     * @param startDate
     * @param endDate
     * @return
     */
    AppBoardMachOverviewDTO machRunData(Integer deptId, Date startDate, Date endDate);

    /**
     * 大屏展示-设备列表
     *
     * @param deptId
     * @return
     */
    AppBoardMachOverviewDTO machList(Integer deptId);

    /**
     * 大屏-人员
     *
     * @param deptId
     * @return
     */
    AppBoardEmpOverviewDTO getEmpData(Integer deptId);

    /**
     * 获取每天的出勤数据统计
     *
     * @param deptId
     * @param startDate
     * @param endDate
     * @return
     */
    ListData<EmpDataDTO> getAttendData(Integer deptId, Date startDate, Date endDate);

    /**
     * 统计班组数量
     *
     * @param deptId 组织机构ID
     * @return 班组数量
     */
    List<AppBoardEmpGroupCountDTO> getEmpGroupData(Integer deptId);
}
